package club.haomoon.boss.service.system;

import club.haomoon.boss.validate.base.PageValidate;
import club.haomoon.boss.validate.system.JobsCreateValidate;
import club.haomoon.boss.validate.system.JobsSearchValidate;
import club.haomoon.boss.validate.system.JobsUpdateValidate;
import club.haomoon.boss.vo.system.JobsDataVo;
import club.haomoon.core.common.PageResult;
import com.alibaba.fastjson2.JSONObject;

import java.util.List;

/**
 * 系统岗位服务接口类
 */
public interface IJobsService {

    /**
     * 岗位所有
     * @return List<SystemPostVo>
     */
    List<JobsDataVo> all();

    /**
     * 岗位列表
     * @param pageValidate 分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<SystemPostVo>
     */
    PageResult<JobsDataVo> list(PageValidate pageValidate, JobsSearchValidate searchValidate);

    /**
     * 岗位详情
     * @param id 主键
     * @return SystemPostVo
     */
    JobsDataVo detail(Integer id);

    /**
     * 岗位新增
     * @param createValidate 参数
     */
    void add(JobsCreateValidate createValidate);

    /**
     * 岗位编辑
     * @param updateValidate 参数
     */
    void edit(JobsUpdateValidate updateValidate);

    /**
     * 岗位删除
     * @param id 主键
     */
    void del(Integer id);

    /**
     * 返回导出格式
     * @return
     */
    JSONObject getExportData(PageValidate pageValidate, JobsSearchValidate searchValidate);

    /**
     * 导出
     */
    String export(JobsSearchValidate searchValidate);
}
